# 给你一个大小为 m x n 的矩阵 board 表示棋盘，其中，每个单元格可以是一艘战舰 'X' 或者是一个空位 '.' ，返回在棋盘 board 上放置的
#  舰队 的数量。 
# 
#  舰队 只能水平或者垂直放置在 board 上。换句话说，舰队只能按 1 x k（1 行，k 列）或 k x 1（k 行，1 列）的形状放置，其中 k 可以
# 是任意大小。两个舰队之间至少有一个水平或垂直的空格分隔 （即没有相邻的舰队）。 
# 
#  
# 
#  示例 1： 
#  
#  
# 输入：board = [["X",".",".","X"],[".",".",".","X"],[".",".",".","X"]]
# 输出：2
#  
# 
#  示例 2： 
# 
#  
# 输入：board = [["."]]
# 输出：0
#  
# 
#  
# 
#  提示： 
# 
#  
#  m == board.length 
#  n == board[i].length 
#  1 <= m, n <= 200 
#  board[i][j] 是 '.' 或 'X' 
#  
# 
#  
# 
#  进阶：你可以实现一次扫描算法，并只使用 O(1) 额外空间，并且不修改 board 的值来解决这个问题吗？ 
# 
#  Related Topics 深度优先搜索 数组 矩阵 👍 301 👎 0
from typing import List


# leetcode submit region begin(Prohibit modification and deletion)
class Solution:
    def countBattleships(self, board: List[List[str]]) -> int:
        m = len(board)
        n = len(board[0])
        node_num = 0
        for i in range(m):
            for j in range(n):
                if board[i][j]=='X':
                    if (board[i][j-1]=='.' or j-1<0) and (board[i-1][j]=='.' or i-1<0):
                       node_num+=1
        return node_num
        
# leetcode submit region end(Prohibit modification and deletion)


print(Solution().countBattleships(board = [["."]]))